Use gtk_window_has_group() to know if the window has an explicit window group.
authorJavier Jardón <jjardon@gnome.org>
Tue, 24 Aug 2010 14:10:38 +0000 (16:10 +0200)
committerJavier Jardón <jjardon@gnome.org>
Tue, 24 Aug 2010 14:16:42 +0000 (16:16 +0200)
gtk_window_get_group() never returns NULL; if the window isn't in a group,
a default window group is returned instead. Use gtk_window_has_group() instead.
This fixes some previous commits to use accessors to access GtkWindow.

Reported by Philip Withnall in bug
https://bugzilla.gnome.org/show_bug.cgi?id=627828

gtk/gtkcolorsel.c
gtk/gtkdnd.c
gtk/gtkfilechooserdefault.c
gtk/gtkprintoperation.c
gtk/gtkprintunixdialog.c
gtk/gtkrecentchooserdefault.c
gtk/gtktreeview.c

index 9db0b8911157150f064e5525e07bf4380ef33958..659edb0e3f23f55641d3f369bc81578e10895e54 100644 (file)
@@ -1896,7 +1896,6 @@ static void
 get_screen_color (GtkWidget *button)
 {
   GtkColorSelection *colorsel = g_object_get_data (G_OBJECT (button), "COLORSEL");
-  GtkWindowGroup *group;
   ColorSelectionPrivate *priv = colorsel->private_data;
   GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (button));
   GdkDevice *device, *keyb_device, *pointer_device;
@@ -1935,9 +1934,8 @@ get_screen_color (GtkWidget *button)
   
       if (GTK_IS_WINDOW (toplevel))
        {
-          group = gtk_window_get_group (GTK_WINDOW (toplevel));
-         if (group)
-            gtk_window_group_add_window (group,
+          if (gtk_window_has_group (GTK_WINDOW (toplevel)))
+           gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (toplevel)),
                                         GTK_WINDOW (grab_widget));
        }
 
index 77f213135a6b4e6276d54160cf4efe3bdea3297f..f190b3953a763653e8b1c609645fabaff36bfc28 100644 (file)
@@ -372,7 +372,6 @@ gtk_drag_get_ipc_widget (GtkWidget *widget)
 {
   GtkWidget *result;
   GtkWidget *toplevel;
-  GtkWindowGroup *group;
 
   result = gtk_drag_get_ipc_widget_for_screen (gtk_widget_get_screen (widget));
   
@@ -380,9 +379,8 @@ gtk_drag_get_ipc_widget (GtkWidget *widget)
   
   if (GTK_IS_WINDOW (toplevel))
     {
-      group = gtk_window_get_group (GTK_WINDOW (toplevel));
-      if (group)
-        gtk_window_group_add_window (group,
+      if (gtk_window_has_group (GTK_WINDOW (toplevel)))
+        gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (toplevel)),
                                      GTK_WINDOW (result));
     }
 
@@ -547,7 +545,6 @@ static void
 gtk_drag_release_ipc_widget (GtkWidget *widget)
 {
   GtkWindow *window = GTK_WINDOW (widget);
-  GtkWindowGroup *group;
   GdkScreen *screen = gtk_widget_get_screen (widget);
   GdkDragContext *context = g_object_get_data (G_OBJECT (widget), "drag-context");
   GSList *drag_widgets = g_object_get_data (G_OBJECT (screen),
@@ -563,9 +560,9 @@ gtk_drag_release_ipc_widget (GtkWidget *widget)
         ungrab_dnd_keys (widget, keyboard, GDK_CURRENT_TIME);
     }
 
-  group = gtk_window_get_group (window);
-  if (group)
-    gtk_window_group_remove_window (group, window);
+  if (gtk_window_has_group (window))
+    gtk_window_group_remove_window (gtk_window_get_group (window),
+                                    window);
   drag_widgets = g_slist_prepend (drag_widgets, widget);
   g_object_set_data (G_OBJECT (screen),
                     I_("gtk-dnd-ipc-widgets"),
index 7af044c95a54c99b5c9b9feaa67774f727803f5b..f41399259971ed5aaaf9346e8196b5a2cac4d40f 100644 (file)
@@ -862,7 +862,6 @@ error_message_with_parent (GtkWindow  *parent,
                           const char *detail)
 {
   GtkWidget *dialog;
-  GtkWindowGroup *group;
 
   dialog = gtk_message_dialog_new (parent,
                                   GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -873,12 +872,9 @@ error_message_with_parent (GtkWindow  *parent,
   gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
                                            "%s", detail);
 
-  if (parent)
-    {
-      group = gtk_window_get_group (parent);
-      if (group)
-        gtk_window_group_add_window (group, GTK_WINDOW (dialog));
-    }
+  if (parent && gtk_window_has_group (parent))
+    gtk_window_group_add_window (gtk_window_get_group (parent),
+                                 GTK_WINDOW (dialog));
 
   gtk_dialog_run (GTK_DIALOG (dialog));
   gtk_widget_destroy (dialog);
@@ -7983,7 +7979,6 @@ confirm_dialog_should_accept_filename (GtkFileChooserDefault *impl,
                                       const gchar           *folder_display_name)
 {
   GtkWindow *toplevel;
-  GtkWindowGroup *group;
   GtkWidget *dialog;
   int response;
 
@@ -8009,9 +8004,9 @@ confirm_dialog_should_accept_filename (GtkFileChooserDefault *impl,
                                            -1);
   gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
 
-  group = gtk_window_get_group (toplevel);
-  if (group)
-    gtk_window_group_add_window (group, GTK_WINDOW (dialog));
+  if (gtk_window_has_group (toplevel))
+    gtk_window_group_add_window (gtk_window_get_group (toplevel),
+                                 GTK_WINDOW (dialog));
 
   response = gtk_dialog_run (GTK_DIALOG (dialog));
 
index 69c542c7f51d6370e7adbc2029b467ba25e0c47f..d043e4fece24c4063f86ddb9e8678f7734f0cb0a 100644 (file)
@@ -2924,7 +2924,6 @@ print_pages (GtkPrintOperation       *op,
       if (!handled)
         {
           GtkWidget *error_dialog;
-          GtkWindowGroup *group;
 
           error_dialog = gtk_message_dialog_new (parent,
                                                  GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -2935,12 +2934,9 @@ print_pages (GtkPrintOperation       *op,
           gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (error_dialog),
                                                     _("The most probable reason is that a temporary file could not be created."));
 
-          if (parent)
-            {
-              group = gtk_window_get_group (parent);
-              if (group)
-                gtk_window_group_add_window (group, GTK_WINDOW (error_dialog));
-            }
+          if (parent && gtk_window_has_group (parent))
+            gtk_window_group_add_window (gtk_window_get_group (parent),
+                                         GTK_WINDOW (error_dialog));
 
           g_signal_connect (error_dialog, "response",
                             G_CALLBACK (gtk_widget_destroy), NULL);
index 130c0e35ec03df1084bd84ea272009faa715609a..f4ce65620adc261c3a9cce25933d8ddc49be922f 100644 (file)
@@ -467,8 +467,6 @@ error_dialogs (GtkPrintUnixDialog *print_dialog,
                   if (file != NULL &&
                       g_file_query_exists (file, NULL))
                     {
-                      GtkWindowGroup *group;
-
                       toplevel = get_toplevel (GTK_WIDGET (print_dialog));
 
                       basename = g_file_get_basename (file);
@@ -500,9 +498,8 @@ error_dialogs (GtkPrintUnixDialog *print_dialog,
                       gtk_dialog_set_default_response (GTK_DIALOG (dialog),
                                                        GTK_RESPONSE_ACCEPT);
 
-                      group = gtk_window_get_group (toplevel);
-                      if (group)
-                        gtk_window_group_add_window (group,
+                      if (gtk_window_has_group (toplevel))
+                        gtk_window_group_add_window (gtk_window_get_group (toplevel),
                                                      GTK_WINDOW (dialog));
 
                       response = gtk_dialog_run (GTK_DIALOG (dialog));
index d068b6c775833a9c05bed59ee12834d18eadc1ad..9a04611d959c5cb89d9eab82c5b849ea64b4bb48 100644 (file)
@@ -700,7 +700,6 @@ error_message_with_parent (GtkWindow   *parent,
                           const gchar *detail)
 {
   GtkWidget *dialog;
-  GtkWindowGroup *group;
 
   dialog = gtk_message_dialog_new (parent,
                                   GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -711,9 +710,9 @@ error_message_with_parent (GtkWindow   *parent,
   gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
                                            "%s", detail);
 
-  group = gtk_window_get_group (parent);
-  if (group)
-    gtk_window_group_add_window (group, GTK_WINDOW (dialog));
+  if (gtk_window_has_group (parent))
+    gtk_window_group_add_window (gtk_window_get_group (parent),
+                                 GTK_WINDOW (dialog));
 
   gtk_dialog_run (GTK_DIALOG (dialog));
   gtk_widget_destroy (dialog);
index 8f5407009c278e19382c0b686e560d0cd50879fa..83d647336b85466b873f17366ee4e3c85c557321 100644 (file)
@@ -10357,36 +10357,33 @@ static void
 gtk_tree_view_ensure_interactive_directory (GtkTreeView *tree_view)
 {
   GtkWidget *frame, *vbox, *toplevel;
-  GtkWindowGroup *group;
   GdkScreen *screen;
 
   if (tree_view->priv->search_custom_entry_set)
     return;
 
   toplevel = gtk_widget_get_toplevel (GTK_WIDGET (tree_view));
-  group = gtk_window_get_group (GTK_WINDOW (toplevel));
   screen = gtk_widget_get_screen (GTK_WIDGET (tree_view));
 
    if (tree_view->priv->search_window != NULL)
      {
-       GtkWindowGroup *search_group;
-
-       search_group = gtk_window_get_group (GTK_WINDOW (tree_view->priv->search_window));
-       if (group)
-        gtk_window_group_add_window (group,
-                                     GTK_WINDOW (tree_view->priv->search_window));
-       else if (search_group)
-        gtk_window_group_remove_window (search_group,
-                                        GTK_WINDOW (tree_view->priv->search_window));
+       if (gtk_window_has_group (GTK_WINDOW (toplevel)))
+         gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (toplevel)),
+                                      GTK_WINDOW (tree_view->priv->search_window));
+       else if (gtk_window_has_group (GTK_WINDOW (tree_view->priv->search_window)))
+         gtk_window_group_remove_window (gtk_window_get_group (GTK_WINDOW (tree_view->priv->search_window)),
+                                         GTK_WINDOW (tree_view->priv->search_window));
+
        gtk_window_set_screen (GTK_WINDOW (tree_view->priv->search_window), screen);
+
        return;
      }
    
   tree_view->priv->search_window = gtk_window_new (GTK_WINDOW_POPUP);
   gtk_window_set_screen (GTK_WINDOW (tree_view->priv->search_window), screen);
 
-  if (group)
-    gtk_window_group_add_window (group,
+  if (gtk_window_has_group (GTK_WINDOW (toplevel)))
+    gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (toplevel)),
                                 GTK_WINDOW (tree_view->priv->search_window));
 
   gtk_window_set_type_hint (GTK_WINDOW (tree_view->priv->search_window),